﻿namespace Blip.Tools
{
    using System.IO;

    /// <summary>
    /// Statyczna klasa rejestrująca informacje o błędach w pliku tekstowym.
    /// </summary>
    /// <example>
    /// <code>
    /// ErrorLog.Report("Błąd");
    /// </code>
    /// </example>
    internal static class ErrorLog
    {
        private const string logFile = "./error.log";

        private static StreamWriter log;

        /// <summary>
        /// Konstruktor otwierający plik błędu przy pierwszym wywołaniu.
        /// </summary>
        static ErrorLog()
        {
            try
            {
                log = File.AppendText(logFile);
            }
            catch { }
        }

        /// <summary>
        /// Dodaje wpis do pliku błędów.
        /// </summary>
        /// <param name="info">Wpis błędu</param>
        public static void Report(string info)
        {
            try
            {                
                string report = string.Format("[{0}] {1}", System.DateTime.Now, info);
                log.WriteLine(report);
                log.Flush();
            }
            catch { }
        }
    }
}
